The present technique relates to an apparatus and method for handling caching of persistent data.
It is known to provide a data processing apparatus with access to a non-volatile memory in which data items on which the data processing apparatus performs data processing operations are stored. Being a non-volatile memory, the content of this non-volatile memory will be persistent after power to the data processing system has been interrupted and restored, whether due to a controlled restart or due to an unexpected event. Accordingly, the non-volatile memory will typically be used to store data that is required to be persistent (referred to herein as persistent data).
However, since non-volatile memory can be used as a cheaper and larger replacement for traditional volatile memory such as DRAM (Dynamic Random Access Memory), it is also the case that non-persistent data may be stored in the non-volatile memory, in order to leverage the large capacity and lower cost of non-volatile memory.
It is also known to provide a data processing apparatus with a cache in which local copies of data items retrieved from memory and being written out to the memory are temporarily stored. This can provide significant performance benefits, but can present problems where that cache is used to store persistent data, due to the fact that the cache storage will not typically be a persistent storage structure.
Accordingly, it would be desirable to provide a mechanism that reliably and efficiently enables persistent data to be cached without compromising the ability to retain that data as persistent data.